import java.util.ArrayList;
import java.util.List;

public class Student {
    private String id;          // 学生编号
    private String name;        // 学生姓名
    private String gender;      // 学生性别
    private List<Course> selectedCourses; // 所选课程列表

    // 构造方法，实例化学生对象
    public Student(String id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.selectedCourses = new ArrayList<>();
    }

    // 学生选课方法
    public void selectCourse(Course course) {
        selectedCourses.add(course);
        System.out.println(name + "（学生编号：" + id + "）选了《" + course.getCourseName() + "》课程");
    }

    // 学生退课方法
    public void dropCourse(Course course) {
        if (selectedCourses.remove(course)) {
            System.out.println(name + "（学生编号：" + id + "）退了《" + course.getCourseName() + "》课程");
        } else {
            System.out.println(name + "（学生编号：" + id + "）未选《" + course.getCourseName() + "》课程，无法退课");
        }
    }

    // 打印学生课表方法
    public void printCourseSchedule() {
        System.out.println("========== " + name + "（学生编号：" + id + "）的课表 ==========");
        if (selectedCourses.isEmpty()) {
            System.out.println("当前没有选课");
        } else {
            for (Course course : selectedCourses) {
                System.out.println("课程名称：" + course.getCourseName() + "，上课地点：" + course.getLocation() +
                        "，时间：" + course.getTime() + "，授课教师：" + course.getTeacher().getName());
            }
        }
        System.out.println("======================================");
    }

    // Getter 方法
    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }
}